|
The Lehmer random number generator (named after D. H. Lehmer), sometimes also referred to as the Park–Miller random number generator (after Stephen K. Park and Keith W. Miller), is a type of linear congruential generator (LCG) that operates in multiplicative group of integers modulo n. The general formula is: : where the modulus ''n'' is a prime number or a power of a prime number, the multiplier ''g'' is an element of high multiplicative order modulo ''n'' (e.g., a primitive root modulo n), and the seed ''X'' is coprime to ''n''. == Parameters in common use == In 1988, Park and Miller suggested a Lehmer RNG with particular parameters ''n'' = 2 − 1 = 2,147,483,647 (a Mersenne prime ''M'') and ''g'' = 7 = 16,807 (a primitive root modulo ''M''), now known as MINSTD. Although MINSTD was later criticized by Marsaglia and Sullivan (1993), it is still in use today (in particular, in CarbonLib and C++11's minstd_rand0 ). Park, Miller and Stockmeyer responded to the criticism (1993), saying:
This revised constant is used in C++11's minstd_rand random number generator.The Sinclair ZX81 and its successors use the Lehmer RNG with parameters ''n'' = 2 + 1 = 65,537 (a Fermat prime ''F'') and ''g'' = 75 (a primitive root modulo ''F''). 〔 (Note the ZX81 manual incorrectly states that 65537 is a Mersenne prime that equals 216-1. The ZX Spectrum manual fixed that and correctly states that it is a Fermat prime that equals 216+1.) 〕 The CRAY random number generator RANF is a Lehmer RNG with ''n'' = 2 and ''g'' = 44,485,709,377,909.〔(GNU Scientific Library: Other random number generators )〕 The GNU Scientific Library includes several random number generators of the Lehmer form, including MINSTD, RANF, and the infamous IBM random number generator RANDU.〔 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Lehmer random number generator」の詳細全文を読む スポンサード リンク
|